package com.tfjybj.itoo.exam.model;

import com.tfjybj.itoo.exam.entity.OptionEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
import lombok.experimental.Accessors;
import javax.persistence.Column;
import java.io.Serializable;
import java.util.List;

/**
 * QuestionMainModel
 * 在线考试用的题目实体
 *
 * @author 任蒙蒙
 * @version 2.0.0
 * @since 2.0.0 2018-11-19 14:55:53
 */
@ApiModel(value = "QuestionMainModel:在线考试用的题目实体")
@Data
@NoArgsConstructor
@Accessors(chain = true)
@ToString(callSuper = true)
public class QuestionMainModel  implements Serializable {
    /* *****************************任蒙蒙************************************ */


    /**
     * id
     */
    @ApiModelProperty(value = "id", required = true)
    private String id;
    /**
     * 是否有效
     */
    @ApiModelProperty(value = "isEffective", required = true)
    private String isEffective;


    /**
     * 子题的顺序
     */
    @ApiModelProperty(value = "子题的顺序", required = true,example = "1")
    private Integer childOrder;
    /**
     * 题型Id
     */
    @ApiModelProperty(value = "题型Id", required = true)
    private String  questionTypeId;





    /**
     * 题型名称
     */
    @ApiModelProperty(value = "题型名称", required = true)
    private String  questionTypeName;

    /* *****************************任蒙蒙************************************ */

    /**
     * 学生答案改为字符串数组，便于回显
     */
    @ApiModelProperty(value = "学生答案改为字符串数组", required = true)
    private String[] studentAnswerArray;


    /**
     *选项
     */
    @ApiModelProperty(value = "选项", required = true)
    private List<OptionEntity> questionSubEntityList;

    /**
     * 学生原始答案(未做处理的)
     */
    @ApiModelProperty(value = "学生原始答案", required = true)
    private String studentAnswer;

    /**
     * 学生得分
     */
    @ApiModelProperty(value = "学生得分", required = true,example = "1.0")
    private Double stuScore;

    /**
     * 答题记录表id（成绩需要）
     */
    @ApiModelProperty(value = "答题记录表id", required = true)
    private String paperRecordId;

    /**
     * 老师的分
     */
    @ApiModelProperty(value = "老师的分", required = true,example = "1.0")
    private Double score;

    //以下字段需要再和表比对，看是否需要改
    /**
     * 题干顺序
     */
    @ApiModelProperty(value = "题干顺序", required = true,example = "1")
    private Integer questionMainOrder;

    /**
     * 序号
     */
    //@Lang(value = "序号")
    @ApiModelProperty(value = "序号", required = true)
    private String serialNumber;

    /**
     * 序号
     */
    //@Lang(value = "编号")
    @ApiModelProperty(value = "编号", required = true)
    private String serial;

    /**
     * 题干编号
     */
    //@Lang(value = "题干编号")
    @ApiModelProperty(value = "题干编号", required = true)
    private String parentNumber;

    /**
     * 题型代码
    */
    @ApiModelProperty(value="题型代码",required=true)
    //@Lang(value="题型")
    private String code;

    /**
     * 主题干编号
     */
    //@Lang(value = "主题干编号")
    @ApiModelProperty(value = "主题干编号", required = true)
    private String sonNumber;

    /**
     * 是否必须为HTML格式（0否，1是）
     */
    @ApiModelProperty(value = "是否必须为HTML格式（0否，1是）",example = "0")
    private Integer isHtml;

    /**++++++++++++++++++++++++++++杨楠++++++++++++++++++++++++++++**/

    /**
     * 题干id
     */
    @ApiModelProperty(value = "题干id")
    private String questionId;
    /**
     * 答案
     */
    @ApiModelProperty(value = "答案", required = true)
    private String answer;

    /**
     * 父试题id
     */
    @ApiModelProperty(value = "父试题id", required = true)
    private String parentId;
    /**
     * 题干内容
     */
    @ApiModelProperty(value = "题干内容", required = true)
    private String questionContent;

    /**
     * 业务题子题的题干
     */
    @ApiModelProperty(value = "业务题子题的题干", required = true)
    private String questionSubContent;
    /**
     * 试题分类id
     */
    @ApiModelProperty(value = "试题分类id", required = true)
    private String questionClassifyId;
    /**
     * 难度等级
     */
    @ApiModelProperty(value = "难度等级", required = true,example = "1")
    private Integer degreeInitial;
    /**
     * 填空数量
     */
    @ApiModelProperty(value = "填空数量", required = true,example = "1")
    private Integer optionCount;
    /**
     * 选项id
     */
    @ApiModelProperty(value = "选项id", required = true)
    private String optionId;
    /**
     * 选项内容
     */
    @ApiModelProperty(value = "选项内容", required = true)
    private String optionName;
    /**
     * 选项顺序
     */
    @ApiModelProperty(value = "选项顺序", required = true,example = "1")
    private Integer optionOrder;

    /**
     * 是否乱序（0 否，1 是）
     */
    @ApiModelProperty(value = "是否乱序", required = true,example = "1")
    private Integer isOutOfOrder;
    /**
     * 是否别名（0 否，1 是）
     */
    @ApiModelProperty(value = "是否别名", required = true,example = "1")
    //@Lang(value = "是否别名")
    private Integer isAlias;

    private Double standardScore;

    private String correctAnswer;

    private String examClassifyId;
    /**++++++++++++++++++++++++++++自定义区++++++++++++++++++++++++++++**/
    /**
     * 题型id
     */
    @ApiModelProperty(value = "题型id", required = true)
    private String typeId;

    /**
     * 选项集合
     */
    @ApiModelProperty(value = "选项集合", required = true)
    private List<OptionEntity> optionEntityList;


    @ApiModelProperty(value = "子题干", required = true)
    private List<QuestionMainModel> questionMainModelList;


    @ApiModelProperty(value = "题干:HTML格式", required = true)
    private String questionContentHtml;

    @ApiModelProperty(value = "题干:HTML格式string类型", required = true)
    private String questionContentHtmlS;


    @ApiModelProperty(value = "题型顺序", required = true,example = "1")
    private Integer questionTypeOrder;

    @ApiModelProperty(value = "业务题", required = true)
    private List<BussinessAllModel> bussinessAllModels;

    /**
     * 答案解析:字符串格式
     */
    @ApiModelProperty(value = "答案解析:字符串格式")
    @Column(name = "analysis")
    private String analysis;

    /**
     * 答案解析:HTML格式
     */
    @ApiModelProperty(value = "答案解析:HTML格式")
    @Column(name = "analysis_html")
    private byte[] analysisHtml;

    /**
     * 复选框是否选中(回显使用,勿删,不存数据库)
     * 版权(马莹)--2019-2-13 15:56:32
     */
    @ApiModelProperty(value = "复选框是否选中")
    private boolean checkBox;
}
